import { IsString, IsNumber, IsOptional, Length, Min, IsUUID } from 'class-validator';
import { Type } from 'class-transformer';

/**
 * 新增商品数据传输对象
 * 用于验证和传递创建商品的请求数据
 */
export class CreateProductDto {
  /**
   * 商品名称
   * @type {string}
   * @required 是
   * @length 2-100个字符
   */
  @IsString()
  @Length(2, 100)
  name: string;

  /**
   * 商品描述
   * @type {string}
   * @required 否
   */
  @IsOptional()
  @IsString()
  description?: string;

  /**
   * 商品价格
   * @type {number}
   * @required 是
   * @minimum 0.01
   */
  @Type(() => Number)
  @IsNumber()
  @Min(0.01)
  price: number;

  /**
   * 分类ID
   * @type {number}
   * @required 是
   */
  @Type(() => Number)
  @IsNumber()
  categoryId: number;

  /**
   * 商品图片URL
   * @type {string}
   * @required 否
   * @length 1-255个字符
   */
  @IsOptional()
  @IsString()
  @Length(0, 255)
  imageUrl?: string;
}